/**
 * GUI - AnmeldSkade
 * @author Søren Hansen
 */

package com.kea.firsthorse.client;

import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HTML;
import com.kea.firsthorse.shared.Horse;
import com.kea.firsthorse.shared.User;
import com.sksamuel.jqm4gwt.button.JQMButton;
import com.sksamuel.jqm4gwt.form.elements.JQMText;
import com.sksamuel.jqm4gwt.form.elements.JQMTextArea;
import com.sksamuel.jqm4gwt.form.elements.JQMSelect;

public class GUI_AnmeldSkade extends GUI_Master implements ClickHandler, ChangeHandler {
	
	private JQMText txtNavn;
	private JQMTextArea txtBeskrivelse;
	private JQMSelect vaelgHest;
	private JQMText txtPolice;
	private JQMText txtBank;
	private JQMText txtBankReg;
	private JQMButton btnSend;
	private HTML vHest;
	private boolean flagH = false;
	private User user;
	
	public GUI_AnmeldSkade(User user) {
		super();
		
		this.user = user;
		
		add(new HTML("<h1>Anmeld Skade</h1>"));
		add(new HTML("De nedenstående oplysninger er hvad vi påkræver for at kunne starte sagsbehandlingen. " +
				"Efterse venligst at oplysningerne er korrekte, og tryk derefter på send-knappen. Vi vil kontakte Dem hvis vi har yderligere spørgsmål."));
		
		txtNavn = new JQMText();
		txtNavn.setText("Forsikringtagers Navn:");
		txtNavn.setValue(user.getFornavn() + user.getEfternavn());
		add(txtNavn);
		
		vaelgHest = new JQMSelect("randomID");
		vaelgHest.addOption("--Vælg en Hest--");
		for(Horse hest : user.getHorseList()) {
			vaelgHest.addOption(hest.getHorse_name(), hest.getHorse_name());
		}
		vaelgHest.addChangeHandler(this);
		add(vaelgHest);
		
		txtPolice = new JQMText();
		txtPolice.setText("Police nr.");
		add(txtPolice);
		
		//Da vi ikke gemmer kundens bankoplysninger, må kunden selv indtaste dem.
		txtBankReg = new JQMText();
		txtBankReg.setText("Reg. nummer");
		//txtBankReg.setWidth("40px");
		txtBank = new JQMText();
		txtBank.setText("Bankkonto nr. som erstatning ønskes udbetalt til:");
		add(txtBank);
		add(txtBankReg);
				
		txtBeskrivelse = new JQMTextArea();
		txtBeskrivelse.setText("Beskriv kort skaden samt hvordan den opstod");
		add(txtBeskrivelse);
		
		btnSend = new JQMButton("Send Skadesanmeldelse");
		btnSend.addClickHandler(this);
		add(btnSend);
	}
	@Override
	public void onClick(ClickEvent event) {
		if(vaelgHest.getSelectedValue().equals("--Vælg en Hest--")) {
			if(!flagH){
				vHest = new HTML("Vælg venligst en hest");
				add(vHest);
			}
			System.out.println("fejl");
		}else {
			flagH = false;
			//TODO remove(vHest) - så der ikke ender med at være tusinde labels;
		}
		System.out.println(vaelgHest.getSelectedValue());
		send();
	}
	private void send() {
		//TODO der skal gives respons til brugeren når anmeldelse er sendt
	}
	@Override
	public void onChange(ChangeEvent event) {
		//FIXME Når der logges ind 2. gang låser dropdown menuen til det første valg der tages.
		if(vaelgHest.getSelectedValue().equals("--Vælg en Hest--")) {
			txtPolice.setValue("");
		}else {
			txtPolice.setValue("" + user.getHorseList().get(vaelgHest.getSelectedIndex() - 1).getHorsepolicy().getPolicy_id());
		}
	}
}
